To pytanie ma już tutaj odpowiedzi: Jak zwrócić odpowiedź z wywołania asynchronicznego? (42 odpowiedzi) Zamknięte 5 miesięcy temu. Zatem podczas uruchamiania poniższego kodu odpowiedź pliku console.log (ba) jest niezdefiniowana Ale kiedy spróbuję tego w konsoli Chrome V8, otrzymuję poprawny wynik, którego oczekuję. Nie jestem do końca pewien, co się tutaj dzieje. niech ba; function Setqa () { (async () => { czekaj na pobranie ('questions.json') .then (res => res.json ()) .then (async (data) => { ba = oczekiwanie na dane; }); }) (); } Setqa (); console.log (ba); Zawartość pliku json jest następująca: "pytania": [{ "questionType": "wiele", "question": "Jaka jest pogoda", "odpowiedzi": "", "pytanie odpowiedź": "" }, { "questionType": "wiele", "question": "Jak się dzisiaj masz?", "odpowiedzi": " 1", "questionAnswer": "textPurpose1" } ]
2021-02-27 08:13:56
Myślę, że to powinno działać niech ba; function Setqa () { return fetch ('questions.json') .then (res => res.json ()) .then (async (data) => { ba = oczekiwanie na dane; }); } Setqa (). Then (() => console.log (ba)); Ale lepsze byłoby podejście async function setQa () { const res = await fetch ('questions.json'); return res.json (); } let ba = czekaj setQa (); | Nie szukasz odpowiedzi? Przeglądaj inne pytania otagowane javascript json pobierz console.log lub zadaj własne pytanie.